﻿using Masuit.Tools.Files;
namespace Tgather
{
    internal class Config
    {
        //配置文件路径
        static String configPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config.ini");
        //ini文件操作类
        IniFile ini = new IniFile(configPath);

        /// <summary>设备端口
        /// 
        /// </summary>
        public string DEPort
        {
            get
            {
                var value = ini.GetValue("DEVICE", "DEPort");
                value = value != null ? value : "COM1";
                return value.ToString();
            }
            set
            {
                ini.SetValue("DEVICE", "DEPort", value);
                ini.Save(); // 保存ini文件
                ini.Reload(); // 重新加载ini文件
            }
        }

        /// <summary>波特率
        /// 
        /// </summary>
        public string DEBaudRate
        {
            get
            {
                var value = ini.GetValue("DEVICE", "DEBaudRate");
                value = value != null ? value : "9600";
                return value.ToString();
            }
            set
            {
                ini.SetValue("DEVICE", "DEBaudRate", value);
                ini.Save(); // 保存ini文件
                ini.Reload(); // 重新加载ini文件
            }
        }

        /// <summary>设备地址
        /// 
        /// </summary>
        public string DEAddress
        {
            get
            {
                var value = ini.GetValue("DEVICE", "DEAddress");
                value = value != null ? value : "1";
                return value.ToString();
            }
            set
            {
                ini.SetValue("DEVICE", "DEAddress", value);
                ini.Save(); // 保存ini文件
                ini.Reload(); // 重新加载ini文件
            }
        }

        /// <summary> 数据库地址
        /// 
        /// </summary>
        public string DBHost
        {
            get
            {
                var value = ini.GetValue("DATABASE", "DBHost");
                value = value != null ? value : "127.0.0.1";
                return value.ToString();
            }
            set
            {
                ini.SetValue("DATABASE", "DBHost", value);
                ini.Save(); // 保存ini文件
                ini.Reload(); // 重新加载ini文件
            }
        }

        /// <summary> 数据库端口
        /// 
        /// </summary>
        public string DBPort
        {
            get
            {
                var value = ini.GetValue("DATABASE", "DBPort");
                value = value != null ? value : "3306";
                return value.ToString();
            }
            set
            {
                ini.SetValue("DATABASE", "DBPort", value);
                ini.Save(); // 保存ini文件
                ini.Reload(); // 重新加载ini文件
            }
        }

        /// <summary> 数据库名称
        /// 
        /// </summary>
        public string DBDatabase
        {
            get
            {
                var value = ini.GetValue("DATABASE", "DBDatabase");
                value = value != null ? value : "";
                return value.ToString();
            }
            set
            {
                ini.SetValue("DATABASE", "DBDatabase", value);
                ini.Save(); // 保存ini文件
                ini.Reload(); // 重新加载ini文件
            }
        }

        /// <summary> 数据库用户
        /// 
        /// </summary>
        public string DBUser
        {
            get
            {
                var value = ini.GetValue("DATABASE", "DbUser");
                value = value != null ? value : "root";
                return value.ToString();
            }
            set
            {
                ini.SetValue("DATABASE", "DbUser", value);
                ini.Save(); // 保存ini文件
                ini.Reload(); // 重新加载ini文件
            }
        }

        /// <summary> 用户密码
        /// 
        /// </summary>
        public string DBPwd
        {
            get
            {
                var value = ini.GetValue("DATABASE", "DbPwd");
                value = value != null ? value : "";
                return value.ToString();
            }
            set
            {
                ini.SetValue("DATABASE", "DbPwd", value);
                ini.Save(); // 保存ini文件
                ini.Reload(); // 重新加载ini文件
            }
        }

        /// <summary> 任务表名称
        /// 
        /// </summary>
        public string DBPTable
        {
            get
            {
                var value = ini.GetValue("DATABASE", "DBPTable");
                value = value != null ? value : "";
                return value.ToString();
            }
            set
            {
                ini.SetValue("DATABASE", "DBPTable", value);
                ini.Save(); // 保存ini文件
                ini.Reload(); // 重新加载ini文件
            }
        }

        /// <summary> 点位数据表名称
        /// 
        /// </summary>
        public string DBPointTable
        {
            get
            {
                var value = ini.GetValue("DATABASE", "DBPointTable");
                value = value != null ? value : "";
                return value.ToString();
            }
            set
            {
                ini.SetValue("DATABASE", "DBPointTable", value);
                ini.Save(); // 保存ini文件
                ini.Reload(); // 重新加载ini文件
            }
        }

        /// <summary> api地址
        /// 
        /// </summary>
        public string APIAddress
        {
            get
            {
                var value = ini.GetValue("API", "APIAddress");
                value = value != null ? value : "";
                return value.ToString();
            }
            set
            {
                ini.SetValue("API", "APIAddress", value);
                ini.Save(); // 保存ini文件
                ini.Reload(); // 重新加载ini文件
            }
        }

        /// <summary> 是否完成设置
        /// 
        /// </summary>
        public bool CompleteSetup
        {
            get
            {
                var value = ini.GetValue("SETUP", "CompleteSetup");
                value = value != null ? value : "false";

                return Convert.ToBoolean(value);
            }
            set
            {
                ini.SetValue("SETUP", "CompleteSetup", value);
                ini.Save(); // 保存ini文件
                ini.Reload(); // 重新加载ini文件
            }
        }
    }
}
